package com.jx.driving.transmission;

import java.util.List;

import com.jx.driving.domain.GnssPackage;
import com.jx.driving.message.TimeTerminalTransmissionMessage;
import com.jx.driving.protocol.terminal.annotation.BcdAnnotation;
import com.jx.driving.protocol.terminal.annotation.ByteAnnotation;
import com.jx.driving.protocol.terminal.annotation.DwordAnnotation;
import com.jx.driving.protocol.terminal.annotation.LimitedStringAnnotation;
import com.jx.driving.protocol.terminal.annotation.ListAnnotation;
import com.jx.driving.protocol.terminal.annotation.ObjectAnnotation;
import com.jx.driving.protocol.terminal.annotation.TerminalAnnotation;
import com.jx.driving.protocol.terminal.annotation.WordAnnotation;
import com.jx.driving.request.domain.LocationAttachement;

/**
 * 上报学时记录
 * 
 * @author shenliuyang
 *
 *         2016年8月15日上午10:41:09
 */
@TerminalAnnotation
public class Terminal0x0203Transmission extends TimeTerminalTransmissionMessage {
	@LimitedStringAnnotation(value = 26, order = 1)
	private String recordNo;// 学时记录编号
	@ByteAnnotation(order = 2)
	private short type;// 上报类型
	@LimitedStringAnnotation(value = 16, order = 3)
	private String userNo;// 学员编号
	@LimitedStringAnnotation(value = 16, order = 4)
	private String coachNo;// 教练编号
	@DwordAnnotation(order = 5)
	private long classId;// 课堂id
	@BcdAnnotation(value = 3, order = 6)
	private String recordTime;// 记录产生时间HHmmss
	@BcdAnnotation(value = 5, order = 7)
	private String course;// 培训课程见 A4.2
	@ByteAnnotation(order = 8)
	private short recordStatus;// 记录状态
	@WordAnnotation(order = 9)
	private int maxSpeed;// 最大速度
	@WordAnnotation(order = 10)
	private int mileage;// 里程
	@ObjectAnnotation(order = 11)
	private GnssPackage gnss;
	@ListAnnotation(order = 12)
	private List<LocationAttachement> attachementList;// 附加信息

	public String getRecordNo() {
		return recordNo;
	}

	public void setRecordNo(String recordNo) {
		this.recordNo = recordNo;
	}

	public short getType() {
		return type;
	}

	public void setType(short type) {
		this.type = type;
	}

	public String getUserNo() {
		return userNo;
	}

	public void setUserNo(String userNo) {
		this.userNo = userNo;
	}

	public String getCoachNo() {
		return coachNo;
	}

	public void setCoachNo(String coachNo) {
		this.coachNo = coachNo;
	}

	public long getClassId() {
		return classId;
	}

	public void setClassId(long classId) {
		this.classId = classId;
	}

	public String getRecordTime() {
		return recordTime;
	}

	public void setRecordTime(String recordTime) {
		this.recordTime = recordTime;
	}

	public String getCourse() {
		return course;
	}

	public void setCourse(String course) {
		this.course = course;
	}

	public short getRecordStatus() {
		return recordStatus;
	}

	public void setRecordStatus(short recordStatus) {
		this.recordStatus = recordStatus;
	}

	public int getMaxSpeed() {
		return maxSpeed;
	}

	public void setMaxSpeed(int maxSpeed) {
		this.maxSpeed = maxSpeed;
	}

	public int getMileage() {
		return mileage;
	}

	public void setMileage(int mileage) {
		this.mileage = mileage;
	}

	public GnssPackage getGnss() {
		return gnss;
	}

	public void setGnss(GnssPackage gnss) {
		this.gnss = gnss;
	}

	public List<LocationAttachement> getAttachementList() {
		return attachementList;
	}

	public void setAttachementList(List<LocationAttachement> attachementList) {
		this.attachementList = attachementList;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("Terminal0x0203Transmission [recordNo=").append(recordNo).append(", type=").append(type)
				.append(", userNo=").append(userNo).append(", coachNo=").append(coachNo).append(", classId=")
				.append(classId).append(", recordTime=").append(recordTime).append(", course=").append(course)
				.append(", recordStatus=").append(recordStatus).append(", maxSpeed=").append(maxSpeed)
				.append(", mileage=").append(mileage).append(", gnss=").append(gnss).append(", attachementList=")
				.append(attachementList).append("]");
		return builder.toString();
	}

}
